home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / NWLIB.ZIP / DEMO.ZIP / FILES.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-08-20  |  7.2 KB  |  255 lines

  1. unit Files;
  2.  
  3. interface
  4.  
  5. uses 
  6.      SysUtils,
  7.      WinTypes, 
  8.      WinProcs, 
  9.      Classes, 
  10.      Graphics, 
  11.      Forms, 
  12.      Controls, 
  13.      Buttons,
  14.      StdCtrls,
  15.      ExtCtrls,
  16.      Nwtools,
  17.      NWServer,
  18.      Nwlib, NWprint;
  19.  
  20. type
  21.   TwinFile = class(TForm)
  22.     CancelBtn: TBitBtn;
  23.     Bevel1: TBevel;
  24.     Panel1: TPanel;
  25.     SalvageList: TListBox;
  26.     Header1: THeader;
  27.     NWServer1: TNWServer;
  28.     NWTools1: TNWTools;
  29.     NWLib1: TNWLib;
  30.     Bevel2: TBevel;
  31.     Panel2: TPanel;
  32.     fileList: TListBox;
  33.     Header2: THeader;
  34.     bSalvage: TButton;
  35.     Bevel3: TBevel;
  36.     Label1: TLabel;
  37.     Label2: TLabel;
  38.     Label3: TLabel;
  39.     Label4: TLabel;
  40.     Label5: TLabel;
  41.     Label6: TLabel;
  42.     fileOwner: TEdit;
  43.     fileCreated: TEdit;
  44.     fileModified: TEdit;
  45.     fileSize: TEdit;
  46.     deleteDate: TEdit;
  47.     deleteBy: TEdit;
  48.     fileUpdated: TEdit;
  49.     archiveBy: TEdit;
  50.     Label7: TLabel;
  51.     Label8: TLabel;
  52.     bInfo: TButton;
  53.     bFileInfo: TButton;
  54.     dirPath: TEdit;
  55.     Label9: TLabel;
  56.     bRefresh: TButton;
  57.     ncopyBtn: TButton;
  58.     NWPrint1: TNWPrint;
  59.     procedure FormShow(Sender: TObject);
  60.     procedure bSalvageClick(Sender: TObject);
  61.     procedure bInfoClick(Sender: TObject);
  62.     procedure bFileInfoClick(Sender: TObject);
  63.     procedure bRefreshClick(Sender: TObject);
  64.     procedure SalvageListEnter(Sender: TObject);
  65.     procedure fileListEnter(Sender: TObject);
  66.     procedure ncopyBtnClick(Sender: TObject);
  67.     procedure nPrintBtnClick(Sender: TObject);
  68.   private
  69.     { Private declarations }
  70.   public
  71.     { Public declarations }
  72.     filePath : string[99] ;
  73.   end;
  74.  
  75. var
  76.   winFile: TwinFile;
  77.  
  78. implementation
  79.  
  80. {$R *.DFM}
  81.  
  82. uses
  83.   nCopyDlg ;
  84.  
  85. procedure TwinFile.FormShow(Sender: TObject);
  86.   var
  87.     ncursor : TCursor ;
  88.   begin
  89.     ncursor := screen.cursor ;
  90.     screen.cursor := crHourglass ;
  91.     if (length(alltrim(filePath)) < 2) then
  92.       filePath := 'z:.\' ;
  93.     dirPath.text  := filePath ;
  94.     try
  95.       { Add to Salvage List }
  96.       salvageList.items.clear ;
  97.       salvageList.items.addStrings(
  98.            getDeletedFileList(getPrimaryServerID,filePath)) ;
  99.       if (salvageList.items.count > 0) then
  100.         begin
  101.           salvageList.enabled   := true ;
  102.           salvageList.itemIndex := 0    ;
  103.           bInfo.enabled         := true ;
  104.           bInfoClick(sender) ;
  105.           bInfo.setfocus ;
  106.         end
  107.       else
  108.         begin
  109.           bInfo.enabled := false ;
  110.           salvageList.enabled := false ;
  111.           salvageList.items.add('<No Deleted Files in ' + filePath  + '>');
  112.         end;
  113.       { Add files to FileList }
  114.       fileList.items.clear ;
  115.       fileList.items.addStrings(getVolFileList(filePath + '*.*')) ;
  116.       if (fileList.items.count > 0) then
  117.         begin
  118.           fileList.itemIndex := 0 ;
  119.           fileList.enabled   := true ;
  120.           bFileInfo.enabled  := true ;
  121.           if (salvageList.items.count < 1) then
  122.             begin
  123.               bFileInfoClick(sender) ;
  124.               bFileInfo.setfocus ;
  125.             end;
  126.          end
  127.       else
  128.         begin
  129.           bFileInfo.enabled := false ;
  130.           bFileInfo.enabled := false ;
  131.           fileList.items.add('<No Files in ' + filePath  + '>');
  132.         end;
  133.      finally
  134.        screen.cursor := ncursor ;
  135.      end;
  136.   end;
  137.  
  138. procedure TwinFile.bSalvageClick(Sender: TObject);
  139.   var
  140.     ctemp : string ;
  141.   begin
  142.     ctemp := filePath + 'erase.me' ;
  143.     if fileExists(ctemp) and 
  144.        yesNoBox(filePath + 'ERASE.ME;OverWrite Existing File?') then
  145.       deleteFile(PChar(ctemp)) ;
  146.     if (not fileExists(ctemp)) then 
  147.       begin
  148.         if Salvage(getPrimaryServerID,
  149.                     filePath + salvageList.items[salvageList.itemIndex],
  150.                     filePath + 'erase.me') then
  151.           okbox('File Salvaged to ' + ctemp) 
  152.         else
  153.           alertBox('Salvage Failed!') ;
  154.       end;
  155.   end;
  156.  
  157. procedure TwinFile.bInfoClick(Sender: TObject);
  158.   var
  159.     deletedFileInfo : TNWDeletedFileInfo ;
  160.   begin
  161.     fileOwner.text    := 'Unknown' ;
  162.     fileModified.text := 'N/A'     ;
  163.     fileSize.text     := 'Unknown' ;
  164.     fileCreated.text  := 'Unknown' ;
  165.     fileUpdated.text  := 'Unknown' ;
  166.     deleteDate.text   := 'Unknown' ;
  167.     deleteBy.text     := 'Unknown' ;
  168.     archiveBy.text    := 'Unknown' ;
  169.     bSalvage.enabled  := true      ;
  170.     if getDeletedFileInfo(filePath +
  171.                           salvageList.items[salvageList.itemIndex],
  172.                           deletedFileInfo) then 
  173.       begin
  174.         fileOwner.text   := deletedFileInfo.ownerID                    ;
  175.         fileSize.text    := intToStr(deletedFileInfo.fileSize)         ;
  176.         fileCreated.text := dateToStr(deletedFileInfo.creationDate)    ;
  177.         fileUpdated.text := dateToStr(deletedFileInfo.updateDateTime)  ;
  178.         deleteDate.text  := dateToStr(deletedFileInfo.deletedDateTime) ;
  179.         deleteBy.text    := deletedFileInfo.deletedBy ;
  180.         archiveBy.text   := deletedFileInfo.lastArchivedBy ;
  181.       end;
  182.   end;
  183.  
  184. procedure TwinFile.bFileInfoClick(Sender: TObject);
  185.   var
  186.     fileInfo : TNWFileInfo ;
  187.   begin
  188.     fileOwner.text    := 'Unknown' ;
  189.     fileModified.text := 'Unknown' ;
  190.     fileSize.text     := 'Unknown' ;
  191.     fileCreated.text  := 'Unknown' ;
  192.     fileUpdated.text  := 'Unknown' ;
  193.     deleteDate.text   := 'N/A'     ;
  194.     deleteBy.text     := 'N/A'     ;
  195.     archiveBy.text    := 'Unknown' ;
  196.     bSalvage.enabled  := false     ;
  197.     if getFileInfo(filePath + fileList.items[fileList.itemIndex],
  198.                    fileInfo) then 
  199.       begin
  200.         fileOwner.text    := fileInfo.ownerID ;
  201.         fileUpdated.text  := dateToStr(fileInfo.updatedDateTime);
  202.         fileModified.text := dateToStr(fileInfo.lastModifyDate) ;
  203.         fileSize.text     := intToStr(fileInfo.fileSize)        ;
  204.         fileCreated.text  := dateToStr(fileInfo.creationDate)   ;
  205.         archiveBy.text    := fileInfo.lastArchivedBy            ;
  206.       end;
  207.   end;
  208.  
  209. procedure TwinFile.bRefreshClick(Sender: TObject);
  210.   begin
  211.     filePath := setPath(dirPath.text) ;
  212.     if dirPath.modified then
  213.       formShow(self.owner) ;
  214.   end;
  215.  
  216. procedure TwinFile.SalvageListEnter(Sender: TObject);
  217.   begin
  218.     bSalvage.enabled := (salvageList.items.count > 0) ;
  219.   end;
  220.  
  221. procedure TwinFile.fileListEnter(Sender: TObject);
  222.   begin
  223.     bSalvage.enabled := false ;
  224.   end;
  225.  
  226. procedure TwinFile.ncopyBtnClick(Sender: TObject);
  227.   begin
  228.     try
  229.       application.createForm(TWinNCopyDlg,winNCopyDlg) ;
  230.       winNCopyDlg.inFile.text := setPath(dirPath.text) +
  231.                                  fileList.items[fileList.itemIndex] ;
  232.       winNCopyDlg.outFile.text := setPath(dirPath.text) ;
  233.       winNCopyDlg.showModal ;               
  234.     finally
  235.       winNCopyDlg.free ;
  236.       winNCopyDlg := nil ;
  237.     end;
  238.   end;
  239.  
  240. procedure TwinFile.nPrintBtnClick(Sender: TObject);
  241.   var
  242.     cfile : string ;
  243.   begin
  244.     cfile := setPath(dirPath.text) + fileList.items[fileList.itemIndex] ;
  245.     if yesNoBox(cfile + ';Send This File to The Printer?') then
  246.       begin
  247.         if NPrint(0,'printer1',cfile) then
  248.           okbox(cfile + ';Printed Successfully!')
  249.         else 
  250.           alertBox(cfile + ';Not Printed!;;Check Print Queue Name') ;
  251.       end;
  252.   end;
  253.  
  254. end.
  255.